/*
 * console.c
 *
 * Console do SO. Interacao com o usuario
 *
 * Copyright 2010 Wendell Silva Soares <wendell@xPhoenix>
 *
 */

#include <io.h>
#include <graphic.h>
#include <shell.h>
#include <string.h>

// Console do SO
void shell() {
	println("Universidade Federal de Alagoas");
	println("Instituto de Computacao");
	println("Disciplina de Sistemas Operacionais");
	println("Phoenix SO [version 0.1.2]");
	println("Copyright 2010 Wendell Silva Soares <wendell@xPhoenix>\n");

	char comando[100] = " ";
	do {
		print("\nwendell@phoenix:~$ ");
		gets(comando);
		trataComando(comando);
	}
	while(strcmp(comando, "exit")!=0);

	println("\n\n =========== Fim da Execucao ============ ");
	putchar(0x07); //pontinho
}

//Trata o comando
void trataComando(char cmd[]) {

	if(strcmp(cmd, "help")==0) {
		println("Comandos: ");
		println("\t'ascii' - mostra a tabela ascci;");
		println("\t'clear' ou 'cls' - limpa a tela;");
		println("\t'date' - mostra a data de hoje;");
		println("\t'help' - mostra esta tela de ajuda;");
		println("\t'time' - mostra a hora atual;");
		println("\t'exit' - finaliza a execucao.");
	}
	else if(strcmp(cmd, "clear")==0 || strcmp(cmd, "cls")==0) {
		cls();
	}
	else if(strcmp(cmd, "ascii")==0) {
		int i;
		for(i=0; i<255; ++i)
			putchar(i);
	}
	else if(strcmp(cmd, "date")==0) {
		printDate();
	}
	else if(strcmp(cmd, "time")==0) {
		printTime();
	}
	else {
		print("Comando Digitado: ");
		println(cmd);
	}
}

//Put a "-fno-stack-protector" into CFLAGS in toplevel Config.mk!

